﻿using CSharp_Class_and_object;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp_Class_and_object
/*
 对象创建：以类为模板，给他赋予具体的数据
 */
{
    /*总结：
    1.访问修饰符：默认是internal(内部的),只能在当前程序集内部使用这个类(类库、exe可启动项)
      public：公共的，可以在程序集外面使用
    */

   /* 对象类型的属性使用
    总结：类本身就是一种数据类型(引用类型) 所以，类中的属性或者变量(成员变量、局部变量)也可以是类类型
        (对象类型)，开发中还会出现"集合对象"类型*/
    internal class Program  
    {
        static void Main(string[] args)
        {
            //Test1();
            //Test2();
            Test3();
            Test4();
            Console.ReadLine();
        }
        static void Test1()
        {
            /*使用new关键字，会将类调到内存中，从而以对象形式存在*/
            Equipment equip = new Equipment();
            equip.EquipID = 100;
            equip.EquipName = "空压机";
            equip.Pressure = 2.5;
            equip.CollectionTime = Convert.ToDateTime("2025-12-31");
            equip.ShowInfo();

            Console.WriteLine("------------");

            Equipment equip2 = new Equipment();
            equip2.EquipID = 88;
            equip2.EquipName = "空压机2222";
            equip2.Pressure = 3.722;
            equip2.CollectionTime = Convert.ToDateTime("2022-1-2");
            equip2.ShowInfo();
        }
        static void Test2() 
        {
            /*使用new关键字，会将类调到内存中，从而以对象形式存在*/
            Equipment2 equip = new Equipment2();
            equip.EquipID = 70;
            equip.EquipName = "空压机";
            //equip.Pressure = 2.5; //这个会报错，只读
            //equip.CollectionTime = Convert.ToDateTime("2025-12-31");
            equip.ShowInfo();
        }
        static Equipment4 equip = new Equipment4();
        static void Test3()
        {
            Sensor sensor = new Sensor();
            sensor.No = 1;
            sensor.Temperature = 25.6; //将来可以用下位机读取
            equip.CurrentSensor = sensor;

            Sensor[] sensorArray = new Sensor[2];
            sensorArray[0] = new Sensor()
            {
                No = 1,
                Temperature = 26.7
            };
            sensorArray[1] = new Sensor()
            {
                No = 2,
                Temperature = 21.3
            };
            equip.SensorArray = sensorArray;
        }
        static void Test4()
        {
            Console.WriteLine(equip.CurrentSensor.No + " " + equip.CurrentSensor.Temperature);
            Console.WriteLine(equip.SensorArray[0].No + " " + equip.SensorArray[0].Temperature);
            Console.WriteLine(equip.SensorArray[1].No + " " + equip.SensorArray[1].Temperature);
        }
    }
}
